home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-07-08 | 5.6 KB | 142 lines | [TEXT/CWIE] |
- SoundSprocket 1.0
- Release Notes
- -----------------
-
- Please report all bugs to sprockets@adr.apple.com!
-
- Release Components
- ------------------
-
- SoundSprocket Release Notes - this file
- SoundSprocket.h - the header file to compile with
- SoundSprocketLib - release version of the library
- SoundSprocketDebugLib - debugging version of the library
- SoundSprocket Filter - the filter component
- SoundSprocket Debug Filter - debugging version of the filter
- SoundSprocketTest - test program
- SoundSprocketTest.ยต - Metrowerks 8 project to build test
- SoundSprocketTest Sources - sources for test program
-
- Sound Manager - Sound Manager extension 3.2.1b14
- SoundLib - link library 3.2.1b14
- Sound.h - replacement for Universal Headers
- SoundComponents.h - replacement for Universal Headers
- Sound - the Sound control panel
-
- WARNING: don't place both the debugging and non-debugging versions of the
- library in the search path or you will not be sure which version you will be
- using.
-
- Either SoundSprocket Filter or SoundSprocket Debug Filter must be present in
- the Extensions folder at boot- and run-time. Only one of them should be
- present or you will not be sure which version you are using.
-
- Dependencies
- ------------
-
- SoundSprocket relies upon the Sound Manager 3.2.1. It must be present on
- your system (and the end-user's system) for SoundSprocket to run.
-
- SoundSprocket requires the latest Universal Headers -- version 2.1.2 or later.
- You can find them on E.T.O. #20, the MacOS SDK CD-ROMs, Apple's web-site, or
- a number of other locations.
-
- Compatability with Prereleases
- ------------------------------
-
- SoundSprocket 1.0 is not compatible with any of the pre-release versions of
- SoundSprocket. You should throw out all DR versions.
-
- Special Considerations
- ----------------------
-
- - If you play a sound using SndPlay, SndStartFilePlay or by sending a
- bufferCmd, when the sound ends, the reverb will stop abruptly. Worse,
- this reverb tail is stored in internal buffers, and will continue when
- the next sound is played in the sound channel if care is not taken.
-
- To fix the reverb from stopping abruptly for sounds played with these
- methods, pad the sounds with enough silence to ensure that the reverb
- has quieted down.
-
- To fix the reverb tail from showing up in the next sound, the buffers
- can be flushed by sending a quietCmd to the buffer. In general it is
- a good idea to send a quietCmd between sounds separated by a gap in
- time.
-
- - To stop a sound while it is playing, but continue the reverb, you need
- to pause the sound, wait for enough time for the reverb to run out, and
- stop the sound. If you are playing the sound with a bufferCmd then
- this is a sequence of commands, rateCmd(0), wait(interval) and
- quietCmd. If you are playing the sound from disk then this is
- a SndPauseFilePlay followed after the interval by a SndStopFilePlay.
-
- API/Documentation Conflicts
- ---------------------------
-
- - The SoundSprocket Filter contains resources that define a pane of the
- Sound control panel. The pane allows the user to control the speaker
- kind and angle, much like SSpConfigureSpeakerSetup. You may choose to
- install the Sound control panel with your game, or provide a menu or
- button to access SSpConfigureSpeakerSetup, or both.
-
- - After the documentation was completed, it was decided that the SSpSetup
- names were not specific enough. We renamed them to SSpSpeakerSetup.
- Some #defines are included in SoundSprocket.h to allow code to be
- written per the documentation. But please use the new, longer names,
- as the #defines will be removed in a later release.
-
- OLD NAME NEW NAME
- siSSpSetup siSSpSpeakerSetup
- SSpSetupData SSpSpeakerSetupData
- SSpConfigureSetup SSpConfigureSpeakerSetup
-
- - The SndGetInfo selector siSSpFilterVersion and datatype
- SSpFilterVersionData have been removed in favor of an alternate way of
- accessing filter version information. The following function may be
- used for this purpose.
-
- // **************************** GetSSpFilterVersion ****************************
- // Finds the manufacturer and version number of the SoundSprocket filter that
- // may be installed. inManufacturer should be the manufacturer code specified
- // at the installation time, which may be zero to allow any manufacturer.
- // If no error is encountered, outManufacturer is set to the actual manufacturer
- // code and outMajorVersion and outMinorVersion are set to the component
- // specification level and manufacturer's implementation revision, respectively.
- OSStatus GetSSpFilterVersion(
- OSType inManufacturer,
- OSType* outManufacturer,
- UInt32* outMajorVersion,
- UInt32* outMinorVersion)
- {
- OSStatus err;
- ComponentDescription description;
- Component componentRef;
- UInt32 vers;
-
- // Set up the component description
- description.componentType = kSoundEffectsType;
- description.componentSubType = kSSpLocalizationSubType;
- description.componentManufacturer = inManufacturer;
- description.componentFlags = 0;
- description.componentFlagsMask = 0;
-
- // Find a component matching the description
- componentRef = FindNextComponent(nil, &description);
- if (componentRef == nil) return couldntGetRequiredComponent;
-
- // Get the component description (for the manufacturer code)
- err = GetComponentInfo(componentRef, &description, nil, nil, nil);
- if (err != noErr) return err;
-
- // Get the version composite
- vers = (UInt32) GetComponentVersion((ComponentInstance) componentRef);
-
- // Return the results
- *outManufacturer = description.componentManufacturer;
- *outMajorVersion = HiWord(vers);
- *outMinorVersion = LoWord(vers);
-
- return noErr;
- }
-